home *** CD-ROM | disk | FTP | other *** search
/ Ham Radio 2000 #2 / Ham Radio 2000 - Volume 2.iso / HAMV2 / TCP_IP / TNOS230D / NEW2TN2.10 < prev    next >
Text File  |  1996-07-23  |  40KB  |  1,059 lines

  1.                     Upgrading TNOS to release 2.10
  2.          http://www.lantz.com/Update2.10.html
  3.  
  4.  
  5. TNOS 2.10 will be the next release of TNOS, to be released sometime
  6. before the formation of the United Federation of Planets. Hopefully,
  7. this list of changes will give you an idea of the scope of work that
  8. has occurred between versions. Of course, it may be faster just to
  9. re-read the docs when the next version is released.
  10.  
  11. This document is divided into:
  12.  
  13.  
  14.     * Bug Fixes
  15.     * Improvements
  16.     * Minor Changes
  17.     * Known Bugs
  18.     * To-Do List
  19.  
  20.  
  21. ------------------------------------------------------------
  22. Bug Fixes:
  23.  
  24. The following bugs have been squashed.
  25.  
  26.  
  27. *    Fixed buglet related to finding Finger files and REQSVR Help file
  28.  
  29. *    Fixed buglet which sometimes stripped beginning of REQSVR uploaded file
  30.  
  31. *    Placed in a temporary workaround for a wpages design problem
  32.  
  33.  
  34.   The problem occurs if an smtp message comes into the SMTP server of the
  35.   form "user%bbs.#heir.address@hostname" *AND* the 'wp support' is on.
  36.  
  37.   It seems that the original string is getting passed TO the wpage_exp
  38.   routine, and it can't handle it at this time.
  39.  
  40.   The result depends on your system. DOS, I don't know, but I suspect a
  41.   glorious crash. Unix, if you have no (or little) swap space, then a TNOS
  42.   crash. Unix with ample swap space, eternal thrashing with little chance
  43.   of recovery short of hitting reset button.
  44.  
  45.   It seems to be getting into a recursive loop, with multiple memory
  46.   allocations. Not really sure WHERE the exact problem is (at the present),
  47.   but here's a simple workaround....
  48.  
  49. *    Fixed an obscure bug that would crash if expanding a empty group
  50.  
  51. *    Fixed a bug that would crash handling the features.new file
  52.  
  53.   This only occurred on SOME systems, which is REALLY surprising.
  54.  
  55. *    Patch to 'ip access' command to insure proper number of parameters
  56.  
  57. *    Fixed buglet in 2.02 with PBBS forwarding messages with blank subjects
  58.  
  59. *    Fixed convers timestamp buglet
  60.  
  61. *    Altered BBS Send command parser to allow '$' in 'to' and 'bbs' names
  62.  
  63. *    Fixed a HUGE bug in FBB compression code
  64.  
  65. *    MANY, MANY assorted cleanups and bug fixes
  66.  
  67. *    The above are included in 2.02pl1 
  68.  
  69. *    Fixed a buglet with the BBS's 'editheader' function
  70.  
  71. *    Fixed a buglet that affected FBB forwarding negotiations
  72.  
  73. *    Added code to ensure that new messages PBBS forward (FBB) timely
  74.  
  75. *    Fixed an occasion crash with SMTP messages with long lines
  76.  
  77. *    Fixed a cosmetic bug with some 'forward' subcommands
  78.  
  79.   Some of the subcommands reports errors as being 'mbox' subcommand errors,
  80.   not 'forward' subcommand errors.
  81.  
  82. *    RSPF timer routine fixed - thanks Paul
  83.  
  84. *    Fix for tracing to Xserver, if using dumb session mgr (UNIX only)
  85.  
  86. *    Fix for T/TCP from Paul
  87.  
  88. *    Fixed problem if mail queued for fwding is being held
  89.  
  90.   ACTUALLY, this bug COULD have occurred with each and every forwarding
  91.   session, causing crashes or freeing others memory. It seemed to only
  92.   occur after the system has tried MANY times to fwd traffic, but it
  93.   still remains held for review. Usually result would be a reset.
  94.  
  95. *    Found and fixed a MAJOR memory corruption bug (hopefully the only one)
  96.  
  97.   This one was because the SCRIPTING additions (if enabled) didn't allocate
  98.   enough memory (one byte short) when processing a locally entered console
  99.   command.
  100.  
  101. *    Fixed PBBS forwarding problem with BIDS containing '@'s
  102.  
  103. *    Fixed a couple of buglets involving POLLEDKISS and KISS w/CRC
  104.  
  105. *    Several assorted bug fixes in the forwarding code
  106.  
  107. *    The above are included in 2.02pl2 
  108.  
  109. *    Added a patch to allow ';' in BIDS to be accepted (God knows why ;-)
  110.  
  111. *    Fixed bug that prevented error message display if catalog.cat missing
  112.  
  113. *    Fixed incorrect handling of X-fwd response of 'SY 0'
  114.  
  115. *    Added code to allow username and flood zone to begin with a '$'
  116.  
  117.   Again, GOD only knows why........
  118.  
  119. *    Fixed a MAJOR bug that at times truncated outgoing PBBS traffic
  120.  
  121. *    Fixed an FTP buglet, which got response messages out of sync
  122.  
  123.   This only would occur if the transfer type was ASCII, and the file type
  124.   was BINARY. A warning message was being output, but it was missing a needed
  125.   '-' character after the message number, to cause the receiver to ignore
  126.   this string, and search for the next string.
  127.  
  128. *    Fixed an FTP buglet, which made Netscape barf
  129.  
  130.   This occurred because Netscape ALWAYS asks for 'get's of a file using the
  131.   complete pathname (starting with '/'), regardless of the directory it
  132.   believes it is in. This wasn't being handled correctly. Since a human
  133.   wouldn't do this, it was never caught in testing.
  134.  
  135. *    Also, fixed a bug in the dir_ok() function
  136.  
  137.   This function is suppose to check for validity of a directory. It WOULD,
  138.   though, not catch if someone tried to (for instance) do a 'cd xxx' in
  139.   the ftpserver and 'xxx' was NOT a directory, but was instead a file.
  140.   The ftpserver would return '257 "xxx" is current directory'.
  141.  
  142. *    Added code to clean up the 'pbbs' listing if an invalid gateway is found
  143.  
  144. *    Fix for PPP and the newest Livingston Portmaster, used by ISP's
  145.  
  146. *    Fixed a buglet that had crept in on msgs requiring Return Receipts
  147.  
  148. *    The above are included in 2.10b2 
  149.  
  150. *    Fixed a bug which didn't handle the remote password as documented
  151.  
  152. *    Fixed the quirk where there would be two X-Forwarded-To lines at times
  153.  
  154. *    The above are included in 2.10b3 
  155.  
  156. *    The above are included in 2.10b4 
  157.  
  158. *    The above are included in 2.10b5 
  159.  
  160. *    FTP permissions bug fixed for Unix
  161.  
  162.   When adding the new UNIX-like dir display a buglet crept in. While fixing
  163.   this, I expanded the support for symlinks to make it consistent with
  164.   normal Unix displays. Also, the '.' and '..' files are now displayed for
  165.   Unix.
  166.  
  167. *    Fixed a security hole in the HTTP PBBS code
  168.  
  169.  
  170. ------------------------------------------------------------
  171. Improvements:
  172.  
  173. The following optimizations and improvements have occurred.
  174.  
  175.  
  176. *    Added to SQL support in TScript ability to use variables in query line 
  177.  
  178. *    Added a 'mbox prune' command to expire personal areas
  179.  
  180.   All deleted messages are removed, as well as any messages over 1/2 year
  181.   old, from all personal areas (areas NOT in the areas.sys file).
  182.  
  183. *    Added a 'sendmail' command, for sending quick notes from Command Session
  184.  
  185.   Syntax is 'sendmail toaddr [fromaddr] subject data', where 'data' is either
  186.   a string, or a filename preceeded by a "<" (with no space between). If
  187.   no 'fromaddr' is given, it is addressed from 'sysop@'yourhostname.
  188.  
  189. *    Added a HTTP server!
  190.  
  191.   This is built from the code patches from Selcuk Ozturk <seost2+@pitt.edu>
  192.   produced for JNOS. The HTTP he produced/modified were a hybrid between
  193.   HTTP 0.9 and HTTP 1.0, meeting NEITHER spec, really. This code was first
  194.   ported to TNOS and UNIX, made completely compliant with both 0.9 and 1.0
  195.   specs, enhanced RADICALLY, and mostly rewritten. All resemblance to the
  196.   original code at this point is strictly coincidental ;-)
  197.  
  198.   The default base directory for HTTP is 'http/' from your TNOS root directory,
  199.   and the default port is 80, which is the normal HTTP server port. You can
  200.   just 'start http' and it will use these defaults, or you can
  201.   'start http <portnum> <dirname>' to specify other than the
  202.   default port and base directory. You can have up to MAXHTTPPORTS servers,
  203.   on different ports. MAXHTTPPORTS is set to 10. You can stop an active
  204.   HTTP server with 'stop http [portnum]'.
  205.  
  206.   Two commands affect the pacing of the servers. The 'http maxcli' command
  207.   sets the total number of connects to be accepted at a time. The 'http simult'
  208.   command sets the number (of connected sessions) that will be served
  209.   simultaneously. The 'simult' number is the number being serviced, while
  210.   the 'maxcli' - 'simult' is the number who we will accept connects from, but
  211.   that must wait their turn. The 'http tdisc' command sets the inactivity
  212.   timer.
  213.  
  214.   There are four commands that customize the information logged. The
  215.   'http agent' command selects whether you wish to log info on the 'User
  216.   Agents' used to access your server; that is, the client software used
  217.   (Netscape, Mosaic, etc). This info, when logged, is kept in
  218.   'spool/log/agent.log'. The 'http referer' command selects whether you
  219.   wish to log info on which Web pages 'referered' to your pages, which led
  220.   them TO you. This info, when logged, is kept in 'spool/log/referer.log'.
  221.   The 'http post' command selects whether you wish to log info sent if a page
  222.   tries to 'post' a form to your TNOS server. Currently the only support for
  223.   the HTTP 'POST' command is to log the info. No parts of TNOS/HTTP act upon
  224.   a 'POST' request (yet). This info, when logged, is kept in
  225.   'spool/log/post.log'. The 'http misc' command selects whether you wish to
  226.   log info from the other header lines received within client requests to
  227.   your server. These are only really useful if debugging problems in accessing
  228.   the server from a particular Client Software product. This info, when
  229.   logged, is kept in 'spool/log/mischttp.log'.
  230.  
  231.   The 'http exec' enables Server Including of 'exec' directives (only
  232.   available on TNOS/Unix). More on this later. The 'http status' command will
  233.   list the active servers, and the settings of the other 'http' subcommands.
  234.  
  235.   All standard HTML files can be served, as well as graphics files, etc. A
  236.   request for 'http://hostname/' will access the file named 'http/root.html'.
  237.   Giving a URL of a directory name, will do several things. First, it will
  238.   look for a file in that directory named, 'wwwpre.cat', and if found it will
  239.   be sent as the beginning of the page, otherwise a default title and
  240.   heading will be created. Then the contents of the directory will be added.
  241.   These are set up with links to icons, to be set up in a 'http/icons'
  242.   directory. These icons can be found on ftp.lantz.com in '/tnos/icons'.
  243.   Then, lastly, it looks for the presence of a 'wwwpost.cat' file, and adds
  244.   it if found, or generates page ending code, if the file doesn't exist.
  245.   The 'wwwpre.cat' and 'wwwpost.cat' files allow you to customize the page
  246.   in any way you wish, and each directory can be different.
  247.  
  248.   There is ALSO full support for Server Includes (also called Server-Side
  249.   Includes in some books). These allow you to include certain information
  250.   as the page is being rendered. Each Include is of the format:
  251.  
  252.     <!--#cmd param -->
  253.  
  254.   These are documented in most available books on writting HTML pages and
  255.   maintaining HTTP servers. The available standard commands/parameters are:
  256.   
  257.  
  258.       *    echo var="DATE_LOCAL"
  259.  
  260.            Displays the current local date/time.
  261.  
  262.       *    echo var="DATA_GMT"
  263.  
  264.            Displays the current date/time in a fixed GMT format.
  265.  
  266.       *    echo var="DOCUMENT_URI"
  267.  
  268.            Displays the current document's URI/URL.
  269.  
  270.       *    echo var="DOCUMENT_NAME"
  271.  
  272.            Displays the current document's filename.
  273.  
  274.       *    echo var="LAST_MODIFIED"
  275.  
  276.            Displays the current document's last modification date/time.
  277.  
  278.       *    include file="filename"
  279.       *    include virtual="filename"
  280.  
  281.            Includes the contents of the named file, as if it's text were a
  282.            part of this page. The 'virtual' filenames are relative
  283.            filenames from the servers base directory, while the 'file'
  284.            filename are relative filename from the directory of the file
  285.            being processed. There is is NO WAY an included file can be
  286.            processed UPWARD from the base directory of the server.
  287.            Filenames starting with '../' have these stripped off of them.
  288.  
  289.       *    fsize file="filename"
  290.       *    fsize virtual="filename"
  291.  
  292.            This includes the size of the named file. The 'file' and
  293.            'virtual' parameters are described above.
  294.  
  295.       *    flastmod file="filename"
  296.       *    flastmod virtual="filename"
  297.  
  298.            This includes the last modification date/time size of the named
  299.            file. The 'file' and 'virtual' parameters are described above.
  300.  
  301.       *    exec cmd="filename" - TNOS/Unix only
  302.  
  303.            This allows you to insert the output of ANY other Unix program,
  304.            into the page, *IF* the 'http exec' command is set to 'on'.
  305.  
  306.       *    config timefmt="timestr"
  307.  
  308.            Configures the output format for date/time strings within Server
  309.            Include directives. The 'timestr' is a string passed to
  310.            'strftime'.
  311.  
  312.       *    config sizefmt="ABBREV|BYTES"
  313.  
  314.            Configures the output format for filesizes. Setting to 'bytes'
  315.            gives the total number of bytes. Setting to 'abbrev' get output
  316.            rounded to the next K or Meg. The default is 'abbrev'.
  317.  
  318.       *    config errmsg="errorstr"
  319.  
  320.            Sets the error message added to the page if an unknown directive
  321.            is used.
  322.  
  323.   The commands that are unique to TNOS are:
  324.   
  325.       *    echo var="HOSTNAME"
  326.  
  327.            Displays the hostname of the TNOS server machine.
  328.  
  329.       *    echo var="TOTAL_HIT_COUNT"
  330.  
  331.            Displays the total number of hits to this server.
  332.  
  333.       *    echo count="filename"
  334.       *    echo icount="filename"
  335.       *    echo scount="filename"
  336.  
  337.            Gives/sets number of times a file has been accessed, based on
  338.            the checkpoint file 'filename'. The 'filename' file is located
  339.            in the 'http/counts' directory. The 'count' parameter is used
  340.            to simply return the current count recorded in checkpoint file
  341.            'filename'. The 'scount' parameter increments the count in the
  342.            checkpoint file 'filename', but does not add it to the
  343.            displayed page. The 'icount' parameter does both; it increments
  344.            the count and displays the new count from the checkpoint file.
  345.  
  346. *    Added to the spec for the forward.bbs file, an 'IF MODE = xx' condition
  347.  
  348.   This allows you to set up different forwarding conditions for unusual times
  349.   (like ARES/RACES activations), and modify how the forwarding will be parsed.
  350.   This looks at the value set by the 'forward mode' command.
  351.  
  352. *    Outbound forwarding first checks and doesn't start if all messages are held
  353.  
  354. *    The above are included in 2.02pl1 
  355.  
  356. *    MAJOR, MAJOR, MAJOR, MAJOR, MAJOR CHANGE!!!!!!!
  357.  
  358.  
  359.   Well, not THAT big, just don't want to answer a NEW FAQ daily! ;-)
  360.  
  361.   The 'mbox' command is renamed to the 'pbbs' command (break that 'mb' habit).
  362.   All log messages that used to have 'MBOX' in them, now have 'PBBS'.
  363.   The spool/log/mbox.log file is now the spool/log/pbbs.log file. The
  364.   etc/help/mbox.hlp file needs to be renamed to etc/help/pbbs.hlp. The
  365.   source file 'mboxcmd.c' was renamed to 'pbbscmd.c'. These changes should
  366.   complete the partial change in terminology from MBOX to PBBS. Some internal
  367.   source code references still use 'mbox' internally, but all external usage
  368.   should now be PBBS.
  369.  
  370.   The BBS 'mboxusers' command remains, but will be phased out later. A
  371.   new 'pbbsusers' command was added, and is the desired command.
  372.  
  373.   A 'mailbox' (or 'mbox') is now used strictly to reference a users mail file,
  374.   while the process used to access this file (and public files) is the PBBS.
  375.  
  376.   CHANGE THESE!!!! (don't say I didn't try ;-)
  377.  
  378. *    Removed the never-completed TNOS-to-TNOS LZW forwarding
  379.  
  380.  
  381.   So long, to the 'forward lzw' command, and (for now), the 'T' in the PBBS
  382.   SID.
  383.  
  384. *    Added code from KA9Q/JNOS for a Terminal Server
  385.  
  386. *    Added code to handle W0RLI X-compressed forwarding protocol
  387.  
  388. *    The above are included in 2.02pl2 
  389.  
  390. *    Added additional Server Side Includes to the HTTP server for PBBS usage
  391.   
  392.       *    echo var="VERSION"
  393.  
  394.            Displays the version release number of the TNOS server machine.
  395.  
  396.       *    echo var="USERNAME"
  397.  
  398.            Displays the current HTTP/PBBS username, or 'unknownUser' for
  399.            not PBBS usage.
  400.  
  401.       *    echo var="QUOTE"
  402.  
  403.            Displays the current Quote of the Day string, if the quote
  404.            server enabled.
  405.  
  406.       *    echo var="AREANAME"
  407.  
  408.            Displays the current area name, if applicable.
  409.  
  410.       *    echo var="MESSAGENUM"
  411.  
  412.            Displays the current area message number, if applicable.
  413.  
  414.       *    echo var="PERMISSIONS"
  415.  
  416.            Displays the output of the PBBS command 'security' for this user
  417.  
  418.       *    echo var="PREV_MSGNUM"
  419.  
  420.            Displays the current area message number - 1, if current is > 1.
  421.  
  422.       *    echo var="NEXT_MSGNUM"
  423.  
  424.            Displays the current area message number + 1, if more messages.
  425.  
  426.       *    echo var="PREV_LIST_START"
  427.  
  428.            Displays the current area message number - 100, if current is
  429.            > 100.
  430.  
  431.       *    echo var="NEXT_LIST_START"
  432.  
  433.            Displays the current area message number + 100, if more than
  434.            100 more messages.
  435.  
  436.       *    echo var="PREV_MSG_BUTTON"
  437.  
  438.            Inserts the /bbs/pmbutton.cat file if there is a previous
  439.            message. This is used to insert a PREV button, using
  440.            PREV_MSGNUM to create a URL.
  441.  
  442.       *    echo var="NEXT_MSG_BUTTON"
  443.  
  444.            Inserts the /bbs/nmbutton.cat file if there is a next message.
  445.            This is used to insert a NEXT button, using NEXT_MSGNUM to
  446.            create a URL.
  447.  
  448.       *    echo var="PREV_LIST_BUTTON"
  449.  
  450.            Inserts the /bbs/plbutton.cat file if there are previous
  451.            messages to list in an area. This is used to insert a PREV
  452.            button, using PREV_LIST_START to create a URL.
  453.  
  454.       *    echo var="NEXT_LIST_BUTTON"
  455.  
  456.            Inserts the /bbs/nlbutton.cat file if there are more messages to
  457.            list in an area. This is used to insert a NEXT button, using
  458.            NEXT_LIST_START to create a URL.
  459.  
  460.       *    echo var="AREA_LIST"
  461.  
  462.            Inserts the actual listing of an area, within the
  463.            /bbs/arealist.html file.
  464.  
  465.       *    echo var="AREA_MSG"
  466.  
  467.            Inserts the actual body of a message, within the
  468.            /bbs/msglist.html file.
  469.  
  470.       *    echo var="TOTAL_HITS"
  471.  
  472.            Same as 'TOTAL_HIT_COUNT' - included for compatibility with
  473.            JNOS HTTP patches.
  474.  
  475.       *    echo var="REQ_FROM"
  476.  
  477.            Inserts the calling system's 'From:' line's data, if one was
  478.            sent.
  479.  
  480.       *    echo var="REQ_REFERER"
  481.  
  482.            Inserts the calling system's 'Referer:' line's data, if one was
  483.            sent.
  484.  
  485.       *    echo var="REQ_AGENT"
  486.  
  487.            Inserts the calling system's 'Agent:' line's data, if one was
  488.            sent.
  489.  
  490.       *    exec bbs="command"
  491.  
  492.            Executes the command 'bbs' within the PBBS, logged in as the
  493.            current user. Only available if the Command Session command
  494.            'http execbbs' is set to 'on'. CAUTION should be taken to only
  495.            use commands that are NOT interactive, since no interaction is
  496.            available.
  497.  
  498.   Requests for /bbs or /bbs/ are changed to /bbs/<username>.html
  499.  
  500.   Requests for /bbs/area are changed to /bbs/area/<username>.html
  501.  
  502.   Requests for /bbs/message/<areaname> are changed to /bbs/area/<areaname>.html
  503.  
  504.   Requests for /bbs/<username>.html are created from the /bbs/user.html file
  505.  
  506.   Requests for /bbs/area/<areaname>.html are created from the /bbs/areaopt.html
  507.     file
  508.  
  509.   Requests for /bbs/area/<areaname>/xx.html creates an area list for 'areaname'
  510.   starting with message 'xx'. If 'xx' is the string 'new', then only new
  511.   messages in this area are listed. This is based on the
  512.   /bbs/user/arealist.html file.
  513.  
  514.   Requests for /bbs/message/<areaname>/xx.html creates a message listing for
  515.   message 'xx' in area 'areaname'. This is based on the /bbs/user/msglist.html
  516.   file.
  517.  
  518. *    Added a Command Session 'register' command, for TNOS registration info
  519.  
  520. *    Added a PBBS 'registry' command, to display TNOS registration info
  521.  
  522. *    Added a completly configurable WWW interface to the PBBS
  523.  
  524.   All URL's starting with /bbs have required authentication. The existing
  525.   ftpusers file is used.
  526.  
  527. *    Complete revamping of Unix Makefile
  528.  
  529. *    Added direct URL request of PBBS command
  530.  
  531.   All URL's of /bbs/cmd/xxxx send back a text file of the 'xxxx' PBBS commands'
  532.   output. To pass parameters to the 'xxxx' command, follow the command with
  533.   a '?' and separate each parameter with a '?'.
  534.  
  535.   All URL's of /bbs/cmd/area?yyy/xxxx send output like the above, but first
  536.   change areas to the 'yyy' area of the PBBS.
  537.  
  538.   Examples:
  539.  
  540.          http://ko4ks.ampr.org/bbs/cmd/finger?ko4ks
  541.          http://ko4ks.ampr.org/bbs/cmd/area?world/l?1?10
  542.  
  543.  
  544.   *** NOTE:
  545.   The 'http execbbs' Command Session command must be 'on'.
  546.   This COULD provide a security problem, so enable at your own risk!
  547.  
  548. *    Added SIZE command to FTP server, for Netscape d/l remaining time gfx
  549.  
  550.  
  551.   Discovering this omission comes from reading an email of Selcuk
  552.   (seost2+@pitt.edu) to the NOS-BBS mailing list. I had THOUGHT I had added
  553.   this already, but hadn't.
  554.  
  555. *    Added display of etc/banner.ftp (if exists) to login for FTP server
  556.  
  557. *    FTP permissions improved for Unix
  558.  
  559.   The new UNIX-like dir display needed a little more work with the permissions
  560.   portion of the display. Now, for TNOS/Unix, the actual file permissions are
  561.   displayed. NOTE: symlinks display the ACTUAL permissions, following the
  562.   symlink.
  563.  
  564. *    Added PASV support to FTP server
  565.  
  566. *    Added a 'etc/reject.dat' file, like FBB's 'reject.sys' file
  567.  
  568.   This is to help prevent message spamming, among other things
  569.  
  570.   The format is:
  571.  
  572.     #REJECT.DAT
  573.         # action is one of 'R'eject, 'H'old, 'L'ocal hold, 'D'efer, or 'A'ccept
  574.         #type from to  @bbs bid      max_size    action
  575.         #B    *    *   *    *_AZGATE 0           R
  576.         #
  577.         B     *    *   *    *_HOLD   0           H
  578.         B     *    *   *    *        6000        A
  579.  
  580.   It will work with PBBS messaging and smtp gatewaying. X-FWD'ing only
  581.   sends the BID during negotiation, so only that is checked at that time. If
  582.   the SMTP server sees a REJECT or DEFER action, it will mark the message as
  583.   deleted. Only messages sent by a non-BBS in the PBBS are eligible for a
  584.   LOCALHOLD. The 'etc/reject.dat' file lines are processed in order, and
  585.   concludes at the first match.
  586.  
  587.   This is all the same data as the FBB 'reject.sys' file, with the parameters
  588.   changed in their order.
  589.  
  590. *    Added a 'pbbs reject' command, to enable/disable 'etc/reject.dat'
  591.         processing
  592.  
  593. *    For Unix - Added a script to analyze system and build a 'make.inc' file
  594.  
  595.   This should properly care for GCC, ELF, ncurses, tclsh, and LOCKDIR
  596.   configuration.
  597.  
  598. *    Added a 'warnings' command, to warn of missing vital commands
  599.  
  600.   This idea came from the tales of woe of one of our number who did
  601.   not have a default IP route set. Seems that under certain circumstances
  602.   (not all) TNOS barfs if someone connects to them, and there is not a
  603.   route TO them, and the default route is not set.
  604.  
  605.   The WARNINGS commmand lists possible problems, which MIGHT have made
  606.   life easier, at least for this ONE individual.
  607.  
  608.   The WARNINGS command automatically executes after the autoexec.nos (if
  609.   not disabled within it), listing things which SHOULD be set, that are
  610.   not; i.e. hostname, ip address, default route, etc. That display can also be
  611.   called from the Command Session console, with 'warnings ?'. You can
  612.   explicitly enable/disable the startup warning from autoexec.nos with
  613.   'warnings on' and 'warnings off', respectively.
  614.  
  615.   It also will remind you of the problems every 20 commands in the Command
  616.   session, unless it is disabled. Better to be a nag, than to have us in
  617.   ignorance! ;-)
  618.  
  619. *    Added two new permission values to ftpusers file
  620.  
  621.   These are related to the HTTP PBBS support currently in TNOS (and later to
  622.   be added). These are:
  623.  
  624.   #   LABEL        DECIMAL      HEX        DESCRIPTION
  625.   #   no_http_ip  33554432   0x02000000    (Disallow http PBBS access via IP)
  626.   #   no_http_ax  67108864   0x04000000    (Disallow http PBBS access via AX25)
  627.  
  628. *    Added an 'http anonsend' command, to allow restricting mail postings
  629.  
  630.   This allows you to restrict the HTTP PBBS code to only allow non-anonymous
  631.   users (those with entries in the ftpusers file) to be able to send mail.
  632.  
  633. *    Added a MAN Command Session command, to display manual pages
  634.  
  635.   Not much use till some man pages are made ;-), but the coding is done
  636.   in anticipation....
  637.  
  638.   While TNOS man pages will be created in typical Unix MAN page format
  639.   (requiring nroff to format), the TNOS 'man' command will read CAT files,
  640.   which are the pre-formatted version of the man pages. While both formats
  641.   MAY be distributed, only the CAT files are used internally by TNOS.
  642.  
  643. *    Added to distribution MAN files for all callable functions in TNOS
  644.  
  645.   This is NOT user level documentation, but it is automatically generated
  646.   man pages of the entire source tree, listing all non-static functions within
  647.   all *.c files. This uses a tool called C2MAN (at fine search engines near
  648.   you). This CAN be used by those TNOS-hackers, to help wade through the
  649.   wealth of files making up TNOS.
  650.  
  651.   They can be viewed within TNOS with the 'man' command, or Unix users can
  652.   add TNOS' 'man' directory to their MANPATH environment variable, and then
  653.   'man' from their favorite shell.
  654.  
  655.   Currently, there are 716 development man pages, so more useful than others.
  656.  
  657. *    Changed the NNTP server code to the 'experimental' code
  658.  
  659.   This is the code that Gareth Rowlands (gareth@lightfox.demon.co.uk)
  660.   started the port to TNOS on, and was distributed in an experimental package
  661.   for several months. I've cleaned up the sources a bit, and replaced the
  662.   old code with this.
  663.  
  664. *    Forward file locking added
  665.  
  666.   If a record got added into a *.fwd file when a forwarding session is
  667.   concluding, sometimes the new record got missed, and the *.fwd file
  668.   gets deleted, losing that new record. Rare, but needed to be addressed.
  669.   Now the fwd file is locked before cleanup and before adding a new entry.
  670.   The code will continue to try to lock the file once a second until it is
  671.   available. There is no way for the previous problem to now occur.
  672.  
  673. *    The above are included in 2.10b2 
  674.  
  675. *    The above are included in 2.10b3 
  676.  
  677. *    Added code to scan R: lines of incoming messages for altered BIDs
  678.  
  679.   There are two commands 'forward alteredbids' and 'forward alteredhold'. The
  680.   first turns on/off the checking. The second command determines if any
  681.   messages found with altered bids will be held (if on) or deleted (if off).
  682.  
  683. *    The above are included in 2.10b4 
  684.  
  685. *    The above are included in 2.10b5 
  686.  
  687. *    Added a PBBS 'bid' command
  688.  
  689.   How many times have you seen a message (usually sent to SYSOP@WW)
  690.   indicating a troublesome message, and all that was given was the BID?
  691.   Kinda hard to find on a multi-area BBS, huh?
  692.  
  693.   No longer! A new BBS command 'bid xxxx' will search for bid 'xxxx', and
  694.   tell you which area it can be found in. Then you can change to that area,
  695.   and use the 'L$ xxxx' command to find the message.
  696.  
  697.   This adds the area to the information in the history file, and will NOT
  698.   be able to help you with the messages on your system prior to release
  699.   2.10, but it will try, and tell you it couldn't find it....
  700.  
  701. *    Added FreeBSD patches
  702.  
  703.  
  704. ------------------------------------------------------------
  705. Minor Changes:
  706.  
  707. The following minor changes have occurred.
  708.  
  709.  
  710. *    A few Convers optimizations added by Dave Salaman
  711.  
  712. *    Added code to prevent crashes with corrupted wpage/history files 
  713.  
  714. *    A few assorted conditional code changes and Sun fixes from Bob Smith
  715.  
  716. *    Completed the compiling sanity checking in config.chk
  717.  
  718. *    Now forces a users.dat update when asked for HOME BBS
  719.  
  720.   This is rather than waiting until the user exits. If the user DIDN'T exit
  721.   normally, this would not get updated, and they would be asked again next
  722.   time.
  723.  
  724. *    Added code to prevent eternal SMTP looping if *.txt file missing
  725.  
  726.   Shouldn't happen in reality, but discovered this in testing.
  727.  
  728. *    Added a log file entry for each MH/MA/MT/MP command
  729.  
  730. *    Added a pre-defined finger 'user' of 'uptime'
  731.  
  732. *    System error message now addressed to 'syserror', not sysop
  733.  
  734.   If you do not have 'errors off' and wish it to work as with prior releases
  735.   of TNOS, add a 'syserror sysop' to your rewrite file.
  736.  
  737. *    Added signal handling code for SIGWINCH, for X window size changes
  738.  
  739. *    Changed 'smtp batch' from default of 'on' to 'off'
  740.  
  741. *    Creates the LOCKDIR if it doesn't exist
  742.  
  743. *    Changed 'forward mode' from an on/off value to a numeric value
  744.  
  745.   Setting mode to zero, disables forwarding.
  746.  
  747. *    The above are included in 2.02pl1 
  748.  
  749. *    Added missing code to verify checksum on received YAPP messages (FBBCMP)
  750.  
  751. *    Changed default of 'forward ctlz' from off to on
  752.  
  753. *    Added a 'forward active' command
  754.  
  755. *    Added a 'forward laston' command
  756.  
  757. *    Several tweeks to the forwarding subchannel code
  758.  
  759. *    Several tweeks to the AX25 code to properly handle pthresh == 65535
  760.  
  761. *    Added a 'PERSONALS' and a 'BULLETINS' attribute to the forward.bbs file syntax
  762.  
  763.   See revised TNOSFWD.TXT
  764.  
  765. *    Added an 'include' directive to the forward.bbs file syntax
  766.  
  767.   See revised TNOSFWD.TXT
  768.  
  769. *    Added a 'forward minidle' command
  770.  
  771. *    Added a new PBS forwarding connect type of 'incoming'
  772.  
  773.   This is for PBBSs that are incoming connects, only. A blank (or missing)
  774.   CONNECT line in forward.bbs will NEVER allow outbound forwarding. Use
  775.   'CONNECT = incoming' for any PBBSs that you NEVER connect out to, but
  776.   that poll you or drop off traffic to you.
  777.  
  778. *    Added Dave Horsfall's patch to strip trailing blanks on headers for MW
  779.  
  780. *    Added code to eliminate XLZW negotiations w/non-44 SMTP remotes
  781.  
  782. *    Changed order of 'forward summary' subcommand
  783.  
  784.   End result is 'fo s' (or 'fo su') is 'forward summary'. 'fo su' USED to be
  785.   'forward subchannel'. Might want to check the autoexec.nos file, if you
  786.   have abbreviated this....
  787.  
  788. *    Added a new forward.bbs attribute, 'LIMITTYPE'
  789.  
  790.   This allows you to limit the forwarding protocol type used with this BBS.
  791.   Values are 'FBB' (for FBB compressed forwarding), 'FBB-NONCOMPRESSED', and
  792.   'MBL' (or 'RLI') for non-FBB forwarding. The default is 'FBB'.
  793.  
  794. *    Added code to prevent the BBS sending more than one SID
  795.  
  796. *    Added to PBBS forwarding script WAIT command
  797.  
  798.   Now, you can specify both a positive string, and a negative string.
  799.   For example, when forwarding via a modem (coming soon),
  800.   you can do 'WAIT 60 CONNECT|BUSY'
  801.   and if 'CONNECT' is found, it succeeds, but if 'BUSY' is found, it fails.
  802.   A special case exists if you do, for example, 'WAIT 60 CONNECT|'. In this
  803.   case, if 'CONNECT' is found it succeeds, but if ANYTHING else is found,
  804.   it fails.
  805.  
  806. *    Extended the BBS 'MK' command to allow kicking individual PBBSs
  807.  
  808.   The Mailbox Kick (MK) command (which is the same as the Command Session
  809.   'forward kick' command, now can also be called as 'MK PBBSNAME [poll]',
  810.   which is the same as the Command Session 'forward kickone PBBSNAME [poll]'
  811.   command.
  812.  
  813. *    Added code to by default suppress POLLEDKISS polls from trace display
  814.  
  815.   Added an optional 'attach asy' flag for devices of type 'pkiss'. This flag
  816.   ('t'), if used, restores the displaying of POLLEDKISS polls in the trace
  817.   display.
  818.  
  819. *    Many assorted tweeks of the forwarding code 
  820.  
  821. *    The above are included in 2.02pl2 
  822.  
  823. *    Added commandline option (-A xxx) to allow setting of max AX25/SLIP devices
  824.  
  825. *    Added commandline option (-B xxx) to allow setting of max BBS processes
  826.  
  827. *    Supressed the printing of data for inactive subchannels in 'fo sub'
  828.  
  829. *    Added to the 'fo sub' syntax a description name
  830.  
  831. *    Added a 'forward sysopprotect' command
  832.  
  833.   This (if on) will treat personal messages in an area named 'SYSOP' the
  834.   same as public bulletins, that is, the messages will NOT be deleted after
  835.   they are forwarded.
  836.  
  837.   Since I and most others place SYSOP@* messages in an area named 'SYSOP',
  838.   that is NOT available as a public area (in the 'areas' file), these messages
  839.   will normally be deleted when they are forwarded to the first forwarding
  840.   station. Since a 'SP SYSOP@*' is ACTUALLY a special case, and treated much
  841.   the same as a bulletin, this command allows this.
  842.  
  843. *    Added code to make incoming PBBS forwarding sessions mark laston time
  844.  
  845.   Discovered that I missed these....
  846.  
  847. *    Added code to do one last pass through the forwarding areas
  848.  
  849.   With FBB and X-compressed forwarding, there was a chance that if you were in
  850.   the last areas forwarding, and new messages came in for that PBBS, there
  851.   was on occasion the possibility that the PBBS would disconnect, not seeing
  852.   these messages, leaving them for the next pass.
  853.  
  854.   I added code (that no one will really notice, unless you run with the
  855.   'fo fbbtr' on all the time), that will make ONE last pass through when it
  856.   is done, until it makes at least one pass in which it forwarded NO messages.
  857.   This additional check should ensure that all mail passes off (unless held)
  858.   before a disconnect.
  859.  
  860. *    Added a '-?' commandline option, to simply display the version info
  861.  
  862. *    Added a check upon startup of the catalog.cat file
  863.  
  864.   The check is made right at the beginning for the catalog.cat file. If it
  865.   is NOT found, an error is reported, and the program ends. If the file
  866.   looks corrupted, then an error is reported, but it attempts to run.
  867.   If the version in the header of the catalog.cat file does NOT match the
  868.   version of the TNOS executable, a warning is given, since death could
  869.   occur soon afterward ;-)
  870.  
  871. *    Code added to insure forwarding queue rescan if additions while forwarding
  872.  
  873.   Previously during FBB and X-compressed forwarding, if a new message came
  874.   in for an area already scanned (probably personal or at least higher
  875.   priority mail), it could have waited for as many as the third following
  876.   negotiation. While this was not bad, it was also not optimal.
  877.  
  878.   Now, when any new message is added to the queue, it forces a new rescan
  879.   at the next negotiation.
  880.  
  881. *    MAJOR rewriting of the HTTP code, removing hardcoded sequences
  882.  
  883. *    MANY assorted cleanups
  884.  
  885. *    Added logic to mkconfig.tcl to flag new options with '<NEW>'
  886.  
  887. *    Minor change, but lengthy in time - rcsid strings in all *.c files
  888.  
  889. *    Added display of RCS symbolic name (if present) to the 'status' command
  890.  
  891. *    Added the compilation date/time to the info in the 'status' command
  892.  
  893. *    In addition to 'desc.ftp', '.message' is also displayed by FTP server
  894.  
  895.   This is for non-MSDOS, for the obvious reason that '.message' is not a valid
  896.   MSDOS filename. These files (if they exist) are displayed when a user
  897.   does a 'cd' into the directory.
  898.  
  899. *    More strings moved to catalog.cat
  900.  
  901. *    Added '?' option to prompts of mkconfig.tcl, with help for most items
  902.  
  903. *    Changed it so that Permanent PBBS messages cannot be killed
  904.  
  905.   They must FIRST be made non-permanent (temporary) with the 'MT' command.
  906.  
  907. *    Attempting an 'all areas' kill must pass an 'are you sure' prompt
  908.  
  909.   I have from time to time done a '!k' when I meant to do a '!l', which ended
  910.   up deleting the first unread message (or message 1 in areas with no new
  911.   messages). Now this potentially danger global command must pass a sanity
  912.   prompt.
  913.  
  914. *    Added a 'smtp gateway none' option, to clear a previous gateway
  915.  
  916. *    Added a verification msg to the PBBS 'group' command
  917.  
  918. *    Added a new compile flag (Unix only) to enable uptime in 'ps' display
  919.  
  920. *    Changed default for 'domain update' from on to off
  921.  
  922. *    The above are included in 2.10b2 
  923.  
  924. *    Added a TNOS lockfile, for easy checking for existance of running TNOS
  925.  
  926.   I will be adding a TNOS lockfile, named 'tnos.lock', which will be placed
  927.   in the TNOS home directory on startup. It will have a single line in it,
  928.   which will be the PID of the active TNOS process. TNOS will look for this
  929.   on startup, and if found, it will check to see if that PID is still active.
  930.   If it *is* active, the new TNOS will die, otherwise it will blow away
  931.   the stale lockfile.
  932.  
  933.   This is just like the way the TNOS (and uucp, etc) deal with the lock
  934.   files that protect serial ports.
  935.  
  936.   It will also give another (better) way to check for TNOS being active in
  937.   scripts, for those of you who wish to (I have found NO need for this, but
  938.   to each their own). Instead of the ps piped into grep, you could:
  939.  
  940.         ps -p `cat /nos/tnos.lock`
  941.  
  942.   to check for it being up.
  943.  
  944. *    Added command line variable expansion to processing of onexit.nos
  945.  
  946. *    The above are included in 2.10b3 
  947.  
  948. *    Added code to display X-BBS-Hold header line when SYSOPs reading msgs
  949.  
  950.   Allows easier determination of why the message is held. If there is NO
  951.   X-BBS-Hold line, it was caught by the userhold.dat file or the wordhold.dat
  952.   file. Otherwise, the reason will be in the X-BBS-Hold line.
  953.  
  954. *    Changed default flow control for Command Session from on to off
  955.  
  956. *    MANY, MANY, MANY cleanups, due to lint'ing
  957.  
  958. *    The above are included in 2.10b4 
  959.  
  960. *    The above are included in 2.10b5 
  961.  
  962.  
  963. ------------------------------------------------------------
  964. Known Bugs:
  965.  
  966. The following are known bugs that are being worked on during the development
  967. of release 2.10. These may or may not be fixed in release 2.10.
  968.  
  969. *    Sending mail to the proxy server, doesn't seem to work properly
  970.  
  971.   The first problem with this was that the proxy server was NOT accounting
  972.   for the fact that some messages will have mini-RFC headers in it.
  973.  
  974.   There is another problem, though, that I am looking into, which seems to
  975.   be related to calling scripts from within scripts (which proxy.scr DOES).
  976.  
  977. *    Displaying parameter strings with a '\r' needs adjustment
  978.  
  979.   If you define a parameter string (like 'ax25 bctext') to be multi-line
  980.   strings with a '\r', the output to the screen may not be what you expect.
  981.  
  982. *    Duplicate entries in the WP files
  983.  
  984.   While not harmful, the WPages routines SHOULD be overwritting existing
  985.   entries, NOT creating new ones.
  986.  
  987. *    Problem with a CC: to a public area
  988.  
  989.   If you send a 'SP' BBS message (or 'SC') and end up with a CC: to a public
  990.   area it has an 'X-BBS-Type' line defining it as personal, when it should be
  991.   bulletin.
  992.  
  993. *    Convers compatibility problem with NON-TPP servers
  994.  
  995.   If the callsign/nickname combo's is larger than 9 characters, this will
  996.   prevent a Jnos host that is linked in from hearing what that person is
  997.   saying.. TPP has this problem, too.....
  998.  
  999. *     None other at this time.... ;-)
  1000.  
  1001.  
  1002. ------------------------------------------------------------
  1003. To-Do List:
  1004.  
  1005. The following are things on my 'to-do' list that may eventually
  1006. be done, but not necessarily by the next release.
  1007.  
  1008.  
  1009. *    Complete the spec and coding of the non-IP HTTP PBBS interface
  1010.  
  1011. *    Investigate incorporating into TNOS a userfs extension
  1012.  
  1013.   This would allow *any* Linux (and possibly other Unix) program to open a
  1014.   file and access certain TNOS features. For instance a terminal program like
  1015.   minicom could open a device:
  1016.  
  1017.     /tnos/connect/lan/k0zxf/ko4ks-1/813044
  1018.  
  1019.   and do the equivalent to 'connect lan k0zxf ko4ks-1 813044'.
  1020.  
  1021.   You could incorporate a copy of your current usage stats into a email
  1022.   message in Pine, by simply inserting a file named /tnos/stats/usage/general.
  1023.  
  1024. *    Add capability to allow use of OS commands
  1025.  
  1026.   Due to the obvious restriction of MS-DOS, this WILL be limited to Unix
  1027.   version only.
  1028.  
  1029. *    Add better support for PBBS<->Internet mail address translation
  1030.  
  1031.   The 'translate' file and improved handling of aliases is a START, but more
  1032.   work needs to be done here. Maybe a 'translate.out' file...
  1033.  
  1034. *    Still better handling of AUTO/LOCAL ax25 routes
  1035.  
  1036.   Improvement by making an ax25 route entry part of the connection block,
  1037.   using this unique AUTO route for this connection only.
  1038.  
  1039. *    Support (optimization) for ncurses 1.9.x for performance
  1040.  
  1041. *    Color support output to Unix console
  1042.  
  1043.   The various color commands don't work with the Unix kernel and curses.
  1044.   Annoying, but just possible unexpected output. No crashes.
  1045.  
  1046. *    Consider adding a 'R x - x' syntax to the BBS read command
  1047.  
  1048. *    Consider adding IP MASQ support
  1049.  
  1050. *    Add code to allow a TIP socket type, for use with LL Modems
  1051.  
  1052. *    Tweek the WPages code a bit
  1053.  
  1054.  
  1055.   Need to improve the code that insures
  1056.   that the wpagebbs entries are correct, of the proper length, and actually
  1057.   look like hier addresses. Also, make the expiring of WPages files less
  1058.   fragile if the file has become corrupted.
  1059.